Traffic shaping is important in digital networks. Traffic shaping involves buffering traffic and sending traffic based upon a desired profile. A traffic profile can include but is not limited to having the following properties: a level of priority relative to other traffic, buffer depth, latency through the buffer, jitter in sending the traffic contained in the buffer, and a rate at which the traffic should be sent. A common approach to traffic shaping involves the use of a queuing system to manage the profile. As traffic arrives, it is placed on the queue. The traffic is de-queued based upon its assigned drain rate. This is illustrated in FIG. 1. A single stream of traffic arrives at the input of a queue at a rate depicted by plot 10. The desired output profile is depicted by the line 12. It is highly desirable to smooth the input such that the output approaches the desired profile 12.
The profile 12 is easy to define, but difficult to implement while still taking into account such issues as instantaneous jitter and granularity of rate allocation across a broad range of desired rates, particularly in systems having a large number of queues (e.g., over 32 queues).
Problems with some prior devices include, for example, lack of scalability, sheer size and high gate-count cost per queue for decentralized shaping engines, expensive caching/arbitration mechanisms, and lack of ability to shape traffic with fine granularity across a broad spectrum of desired rates.